﻿using ASmile.ORM.Entitys;

namespace ASmile.Com
{
    public interface IBLLCrud<TPageArg, TSaveModel, TListModel>
        where TSaveModel : class, new()
        where TListModel : class, new()
        where TPageArg : ArgPageData, new()
    {
        ApiResult<string> Add(TSaveModel model);
        ApiResult Del(TSaveModel model);
        ApiResult<string> Update(TSaveModel model);
        ApiResultList<TListModel> GetList(TPageArg arg);
    }

    public interface IBLLCrud<TPageArg,TSaveModel> : IBLLCrud<TPageArg, TSaveModel, TSaveModel>
        where TSaveModel : class, new()
        where TPageArg : ArgPageData, new()
    { }

    public interface IBLLCrud<TSaveModel> : IBLLCrud<ArgPageData, TSaveModel>
        where TSaveModel : class, new()
    { }
}